/**
 * 
 */
package neptune.web.client.model.topology;

import java.util.ArrayList;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * @author Roberto Bifulco [info@robertobifulco.it, robertobifulco.it]
 * 
 */
public class SerializableLink implements IsSerializable {

	/**
	 * Multiplexing methods
	 */
	public static final int UNDEFINED = -1;
	public static final int ONE_LINK_PER_INTERFACE = 0;
	public static final int IP_ALIASING = 1;

	/**
	 * Il punto di partenza del link
	 */
	private SerializableEndPoint source;
	/**
	 * il punto di arrivo del link
	 */
	private SerializableEndPoint destination;
	/**
	 * Identificativo univoco del link
	 */
	private String id;
	/**
	 * Le Property associate a questo link
	 */
	private ArrayList<SerializableProperty> properties = new ArrayList<SerializableProperty>(
			0);
	/**
	 * true se e' un link full duplex
	 */
	private boolean isFullDuplex;

	/**
	 * @return the source
	 */
	public SerializableEndPoint getSource() {
		return source;
	}

	/**
	 * @param source
	 *            the source to set
	 */
	public void setSource(SerializableEndPoint source) {
		this.source = source;
	}

	/**
	 * @return the destination
	 */
	public SerializableEndPoint getDestination() {
		return destination;
	}

	/**
	 * @param destination
	 *            the destination to set
	 */
	public void setDestination(SerializableEndPoint destination) {
		this.destination = destination;
	}

	/**
	 * @return the id
	 */
	public String getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * @return the properties
	 */
	public ArrayList<SerializableProperty> getProperties() {
		return properties;
	}

	/**
	 * @param properties
	 *            the properties to set
	 */
	public void setProperties(ArrayList<SerializableProperty> properties) {
		this.properties = properties;
	}

	/**
	 * @return the isFullDuplex
	 */
	public boolean isFullDuplex() {
		return isFullDuplex;
	}

	/**
	 * @param isFullDuplex
	 *            the isFullDuplex to set
	 */
	public void setFullDuplex(boolean isFullDuplex) {
		this.isFullDuplex = isFullDuplex;
	}

}
